Notre bibliothèque de thread fonctionne d'une manière similaire à pthread, bien que quelques différences existent. La création de thread se fait via la fonction \verb?thread_create()? qui prend en argument :
\begin{itemize}
	\item Une structure \verb?thread_t? qui contient les informations importantes du thread
	\item La fonction à exécuter par le thread 
	\item L'argument de cette fonction ( NULL dans le cas d'une fonction sans argument )\\
\end{itemize}


	Cette fonction est donc très proche de la fonction \verb?pthread_create()?, à l'exception des attributs du thread qui ne sont pas gérés par notre bibliothèque. On notera que comme pour pthread, l'implémentation limite le nombre d'argument à un.\\

	Tout thread créer doit être join et ce une unique fois, ceci afin de permettre de libérer la mémoire et de récupérer la valeur de retour de la fonction.\\
	
	Le développeur qui souhaite utiliser notre bibliothèque devra modifier légèrement ses fonctions pour qu'elles soient compatibles avec notre code. Deux contraintes doivent être respectées : 
	\begin{itemize}
		\item Toute fonction utilisée pour créer un thread doit se terminer par un appel à \verb?thread_exit()? afin de signifier la terminaison de celui-ci
		\item C'est au développeur de choisir quand la fonction redonne la main à l'ordonnanceur, il n'existe pas de préemption dans notre implémentation. 
	\end{itemize}

